A group of users may subscribe to a service that provides, for example, stock price updates for particular stocks, breaking news stories, etc. When, for example, the stock price for one of the stocks changes, an event may be generated such that a message that includes the updated stock price is sent to those subscribers or recipients who have expressed a desire to receive information regarding the stock. It is sometimes desirable to send events in a secure manner for a number of reasons including, but not limited to, confidentiality as well as preventing non-paying users from receiving information without paying a subscription fee.
In one prior art method of generating and securely sending an event message to a plurality of recipient devices via a network, the event is generally encrypted with a key known to each recipient device and then sent to the recipient device via the network. This may be accomplished by, for example, encrypting the event message with a key known to recipient device 1 and sending the encrypted event message to recipient device 1, encrypting the event message with a key known to recipient device 2 and sending the encrypted event to recipient device 2, and so on. Such a method of sending secure events to multiple recipient devices is secure and works well when the number of recipients is small; however, as the number of recipients becomes large, a large amount of time and resources are required to encrypt the event for each particular recipient device prior to sending the event.
In another prior art method for sending secure event messages to multiple recipient devices, an event message may be encrypted using a predetermined single key known to all recipient devices. Thus, the event may only be encrypted once using a single key; however, such a system is not very secure. For example, if the key is obtained by an unauthorized party, that party may then be able to decrypt all transmitted events encrypted with the same key. Further, when the key changes, the new key may require distribution to all recipient devices, whether or not the recipient devices will receive events using that key. When the number of recipients is large, resources and time may be expended distributing a key that may not be used.
Thus, a secure scalable method for sending an event message that works well for systems having a small or large number of recipients is needed.